package com.wan37.logic.domain.vo;

import com.wan37.logic.service.cache.SkillServiceCache;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author : luoyong
 * @date : 2020-06-02 10:21
 **/
public class SkillVO {
    private String id;
    private String name;
    private long CD;
    private volatile Map<String, Long> numberMap;
    private Integer level;
    private long delay;
    private long costHP;
    private String status;
    private String profession;
    private Integer priority;
    private String label;
    private long duration;
    private String usage;
    private long useTime;
    private long reading;

    public SkillVO() {
        this.numberMap = new ConcurrentHashMap<>();
    }

    public SkillVO(SkillVO skillVO) {
        this.id = skillVO.getId();
        this.name = skillVO.getName();
        this.CD = skillVO.getCD();
        this.costHP = skillVO.getCostHP();
        this.priority = skillVO.getPriority();
        this.profession = skillVO.getProfession();
        this.label = skillVO.getLabel();
        this.duration = skillVO.getDuration();
        this.usage = skillVO.getUsage();
        this.useTime = System.currentTimeMillis();
        this.reading = skillVO.getReading();
    }

    public Map<String, Long> getNumberMap() {
        return numberMap;
    }

    public void setNumberMap(Map<String, Long> numberMap) {
        this.numberMap = numberMap;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public long getCD() {
        return CD;
    }

    public void setCD(long CD) {
        this.CD = CD;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public long getDelay() {
        return delay;
    }

    public void setDelay(long delay) {
        this.delay = delay;
    }

    public long getCostHP() {
        return costHP;
    }

    public void setCostHP(long costHP) {
        this.costHP = costHP;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getProfession() {
        return profession;
    }

    public void setProfession(String profession) {
        this.profession = profession;
    }

    public Integer getPriority() {
        return priority;
    }

    public void setPriority(Integer priority) {
        this.priority = priority;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }


    public long getDuration() {
        return duration;
    }

    public void setDuration(long duration) {
        this.duration = duration;
    }

    public String getUsage() {
        return usage;
    }

    public void setUsage(String usage) {
        this.usage = usage;
    }

    public long getUseTime() {
        return useTime;
    }

    public void setUseTime(long useTime) {
        this.useTime = useTime;
    }

    public long getReading() {
        return reading;
    }

    public void setReading(long reading) {
        this.reading = reading;
    }

    @Override
    public String toString() {
        return "SkillVO{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", CD=" + CD +
                ", numberMap=" + numberMap +
                ", level=" + level +
                ", delay=" + delay +
                ", costHP=" + costHP +
                ", status='" + status + '\'' +
                ", profession='" + profession + '\'' +
                ", priority=" + priority +
                ", label='" + label + '\'' +
                ", duration=" + duration +
                ", usage='" + usage + '\'' +
                '}';
    }
}
